home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / ddj0897.zip / ISERVER.ASC < prev    next >
Text File  |  1997-06-20  |  4KB  |  143 lines

  1. _Writing ActiveX ISAPI Extensions_
  2. by Al Williams
  3.  
  4.  
  5. Example 1:
  6. Public Sub VBISAPI(server as Object)
  7.  . . .
  8. End Sub
  9.  
  10. Example 2:
  11. <A HREF=http://www.al-
  12. williams.com/awc/scripts
  13. /cbisapi.dll?hilo.dll:Guess+newgame> 
  14. Click to begin 
  15. </A>
  16.  
  17. Example 3:
  18. (a)
  19. Dim x as Variant
  20. server.ServerVariable "HOST_NAME",x
  21. server.Write x
  22. server.ServerVariable "SCRIPT_NAME",x
  23. server.Write x
  24.  
  25. (b)
  26. Dim x as Variant
  27. Dim y as Variant
  28. server.ServerVariable "HOST_NAME",x
  29. server.ServerVariable "SCRIPT_NAME",y
  30. server.Write x & y
  31.  
  32. Example 4:
  33. Dim s as String
  34. s=server.ParsedQueryString("HI")
  35.  
  36. Example 5:
  37. (a)
  38. <% EntryTime = now
  39.        Validated = False
  40. %>
  41.  
  42. (b)
  43. Logged on since <%= EntryTime %>
  44.  
  45. (c)
  46. <% if Validated then %>
  47. <B>Data Entry Successful!</B>
  48. <% end if %>
  49.  
  50.  
  51.  
  52.  
  53. Listing One
  54. VERSION 1.0 CLASS
  55. BEGIN
  56.   MultiUse = -1  'True
  57. END
  58. Attribute VB_Name = "DLL"
  59. Attribute VB_GlobalNameSpace = False
  60. Attribute VB_Creatable = True
  61. Attribute VB_PredeclaredId = False
  62. Attribute VB_Exposed = True
  63. Option Explicit
  64. Private Sub svrerr(server As Object, errstr As String)
  65. server.WriteLine "Error: " & errstr
  66. server.statcode = 400
  67. server.retval = 4
  68. End Sub
  69.  
  70. Private Sub Win(server As Object)
  71. server.WriteLine "<HTML><HEAD><TITLE>I Win</TITLE></HEAD><BODY>"
  72. server.WriteLine "I got it right!</BODY></HTML>"
  73. End Sub
  74.  
  75. Private Sub GuessAgain(server As Object, Hi As Long, Lo As Long)
  76. Dim servername As Variant
  77. Dim script As Variant
  78. server.WriteLine "<HTML><HEAD><TITLE>HiLo!</TITLE></HEAD><BODY>"
  79. server.WriteLine "My guess is " & CInt((Hi + Lo) / 2) & "<P>"
  80. server.ServerVariable "SERVER_NAME", servername
  81. server.ServerVariable "SCRIPT_NAME", script
  82. server.WriteLine "Is my guess:<P>"
  83. server.Write "<FORM ACTION=http://" & servername
  84. server.Write "/" & script
  85. server.WriteLine "?HILO.DLL:Guess+HI=" & Hi & "+LO=" & Lo & " METHOD=POST>"
  86. server.WriteLine "High <INPUT TYPE=RADIO NAME=ANSWER VALUE=HI><P>"
  87. server.WriteLine "Correct <INPUT TYPE=RADIO NAME=ANSWER VALUE=OK><P>"
  88. server.WriteLine "Low <INPUT TYPE=RADIO NAME=ANSWER VALUE=LO><P>"
  89. server.WriteLine "<INPUT TYPE=SUBMIT>"
  90. server.WriteLine "</FORM>"
  91. server.WriteLine "</BODY></HTML>"
  92. End Sub
  93.  
  94. Public Sub Guess(server As Object)
  95.  Dim Guess As Long
  96.  Dim Hi As Long
  97.  Dim Lo As Long
  98.  Dim pos As Long
  99.  Dim ans As String
  100.  pos = InStr(1, server.QueryString, "HI=", vbTextCompare)
  101.  If pos = 0 Then
  102.    svrerr server, "Can't find HI"
  103.    Exit Sub
  104.  End If
  105.  Hi = Val(Mid(server.QueryString, pos + 3))
  106.  pos = InStr(1, server.QueryString, "LO=", vbTextCompare)
  107.  If pos = 0 Then
  108.    svrerr server, "Can't find LO"
  109.    Exit Sub
  110.  End If
  111.  Lo = Val(Mid(server.QueryString, pos + 3))
  112.  If server.ContentLength = 0 Then
  113.   GuessAgain server, Hi, Lo
  114.  Else
  115.   Guess = (Hi + Lo) / 2
  116.   pos = InStr(1, server.Content, "ANSWER=", vbTextCompare)
  117.   If pos = 0 Then
  118.     svrerr server, "Form error"
  119.     Exit Sub
  120.   End If
  121.  ans = Mid(server.Content, pos + 7, 2)
  122.  If ans = "OK" Then Win server
  123.  If ans = "LO" Then GuessAgain server, Hi, Guess
  124.  If ans = "HI" Then GuessAgain server, Guess, Lo
  125.  If ans <> "OK" And ans <> "LO" And ans <> "HI" Then svrerr server, "Unknown Response: " & server.Content
  126. End If
  127. End Sub
  128.  
  129. Listing Two
  130. <HTML>
  131. <HEAD>
  132. <TITLE>Play Hi-Lo!</TITLE>
  133. </HEAD>
  134. <BODY>
  135. I'll guess your number.<BR>
  136. Think of a number between 1 and 1024 and I'll guess it.<BR>
  137. Think of your number and
  138. <A HREF=http://www/scripts/cbisapi.dll?HILO.DLL:GUESS+HI=1024+LO=1>
  139. click here to play</A>
  140. </BODY>
  141. </HTML>
  142.  
  143.